<?php
//require_once '../conf/config.php.inc';
require_once 'libsybase.php.inc';


class Modulo{
	var $id;
	var $nombre;
	var $ubicacion;
	var $descripcion;
	var $fecha;
	var $opciones=array();
}

/**
 * Determina los modulos asociados a un login
 * @param $suid El suid asociado al login. Se puede obtener mediante $_SESSION['sybmas.user.suid']
 * @return Lista de objetos Modulo que encapsulan los datos de los modulos asociados al login
 */
function obtener_modulos_usuario($suid){
	$modulos=array();
	$sybmas_connection=start_sybmas_connection();
	$query="SELECT m.id_modulo,m.nombre ".
		"FROM master..sysloginroles lr, master..syssrvroles r, ".
		SYBMAS_DATABASE_NAME."..sybmas_rolesmodulo rm,".SYBMAS_DATABASE_NAME."..sybmas_modulo m ".
		"WHERE lr.suid=$suid AND lr.srid=r.srid ".
		"AND r.srid=rm.srid ".
		"AND rm.id_modulo=m.id_modulo ".
		"UNION ".
		"SELECT m.id_modulo,m.nombre ".
		"FROM ".SYBMAS_DATABASE_NAME."..sybmas_rolesmodulo rm,".SYBMAS_DATABASE_NAME."..sybmas_modulo m ".
		"WHERE rm.srid IS NULL ".
		"AND rm.id_modulo=m.id_modulo ";		
	$result=sybase_query($query,$sybmas_connection);
	
	while($data=sybase_fetch_array($result)){
		$modulo=new Modulo();
		$modulo->id=$data['id_modulo'];
		$modulo->nombre=$data['nombre'];
		//$modulo->id=$data['ubicacion'];
		//$modulo->id=SELECT m.id_modulo,m.nombre,o.id_opcionModulo,o.nombreopc FROM master..sysloginroles lr, master..syssrvroles r, sybmas_db..sybmas_rolesmodulo rm,sybmas_db..sybmas_modulo m, sybmas_db..sybmas_opcionModulo o, sybmas_db..sybmas_rolesOpcionModulo ro WHERE lr.suid=1 AND m.id_modulo=1AND lr.srid=r.srid AND r.srid=rm.srid AND rm.id_modulo=m.id_modulo AND lr.srid=ro.srid AND m.id_modulo = o.id_modulo AND o.id_opcionModulo = ro.id_opcionModulo$data['descripcion'];
		//$modulo->id=$data['fecha'];		
		$modulo->opciones=obtener_opciones_modulos_usuario2($suid,$modulo->id);
		$modulos[]=$modulo;
	}		
	sybase_free_result($result);
	sybase_close($sybmas_connection);
	return $modulos;
}

class Opcion2{
	var	$id_modulo;
	var $id_opcionModulo;
	var $nombreopc;
	var $link;
	var $rutaImagen;
}

function obtener_opciones_modulos_usuario2($suid,$id_modulo){
	$opcionModulo=array();
	$query="SELECT o.id_modulo,o.id_opcionModulo,o.nombreopc,o.link,o.rutaImagen ".
		   "FROM master..sysloginroles lr, master..syssrvroles r, ".
		   SYBMAS_DATABASE_NAME."..sybmas_rolesmodulo rm,".
		   SYBMAS_DATABASE_NAME."..sybmas_modulo m, ".
		   SYBMAS_DATABASE_NAME."..sybmas_opcionModulo o, ".
		   SYBMAS_DATABASE_NAME."..sybmas_rolesOpcionModulo ro ".   
		   "WHERE lr.suid=$suid ".
		   "AND m.id_modulo=$id_modulo".
		   "AND lr.srid=r.srid ".	
		   "AND r.srid=rm.srid ".	
		   "AND rm.id_modulo=m.id_modulo ".
		   "AND lr.srid=ro.srid ". 
		   "AND m.id_modulo = o.id_modulo ". 
		   "AND o.id_opcionModulo = ro.id_opcionModulo ". 
		   "UNION ".	  	
		   "SELECT o.id_modulo,o.id_opcionModulo,o.nombreopc,o.link,o.rutaImagen ".
		   "FROM ".SYBMAS_DATABASE_NAME."..sybmas_opcionModulo o,".
		   SYBMAS_DATABASE_NAME."..sybmas_rolesOpcionModulo ro ".
		   "WHERE ro.srid IS NULL AND o.id_modulo=$id_modulo ".
		   "AND o.id_opcionModulo = ro.id_opcionModulo ".
		   "ORDER BY o.nombreopc";
	//echo $query."<hr>";						
	$result=sybase_query($query);	
	while($data=sybase_fetch_array($result)){
		$opc=new Opcion2();
		$opc->id_modulo=$data['id_modulo'];
		$opc->id_opcionModulo=$data['id_opcionModulo'];
		$opc->nombreopc=$data['nombreopc'];
		$opc->link=$data['link'];
		$opc->rutaImagen=$data['rutaImagen'];
		//$modulo->id=$data['fecha'];		
		$opcionModulo[]=$opc;
	}
	sybase_free_result($result);
	//sybase_close($conn);
	return $opcionModulo;
}

?>